到這裡,我們一定有很多疑問,Grant也是滿頭黑人問號?
既然Vault負責管理這些機敏資訊,那它是怎麼運作? 又是怎麼儲存的呢
要了解這些,我們就必須深入看看Vault的架構了。
Vault 是一個基於身分的金鑰和加密管理系統,它集中管理金鑰,輪換舊憑證,按需產生憑證,審計客戶端交互,並支援監管合規性。
而金鑰是甚麼呢? 它可以是任何需要嚴格控制存取權限的訊息,例如令牌(Token)、API 金鑰(API key)、密碼(Password)、加密金鑰(Key)或憑證(Certification)。 Vault 提供了一個統一的金鑰管理介面,同時提供嚴格的存取控制並記錄詳細的稽核日誌。
而Vault則會在向客戶端(使用者、機器、應用程式)提供對金鑰或儲存的敏感資料的存取權之前,對其進行驗證和授權。
Vault 的核心工作流程包括四個階段:

再更深入來看,Vault 的加密層稱為 Encryption Barrier,主要負責 Vault 資料的加密與解密。由於 Storage Backend 位於 Barrier 之外,因此 Vault 將其視為不可信任的儲存空間(untrusted storage),所有敏感資料在寫入 Storage Backend 前都會先經過 Barrier 加密,因此即使攻擊者取得 Storage Backend 中的資料,也無法直接讀取其中的 Secrets。
換言之,在Storage Backend裡的資料都是加密過的。
Storage Backend 本身則負責提供持久化儲存(persistent storage),確保 Vault Server 重新啟動後資料仍然存在。當 Vault Server 啟動時,預設會處於 Sealed 狀態,此時 Vault 雖然能存取 Storage Backend,卻沒有能力解密其中受保護的資料;只有完成 Unseal、讓 Vault 取得解密所需的 key material 後,Encryption Barrier 才能正常進行資料的加密與解密,Vault 也才能開始提供完整服務。